home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / obero / oberon_lib.lha / oberon-a / source1.lha / source / Amiga / Translator.mod < prev    next >
Text File  |  1994-08-08  |  2KB  |  110 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Translator.mod $
  4.   Description: Interface to translator.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.2 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 00:49:16 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. MODULE Translator;
  23.  
  24. (*
  25. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  26. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  27. ** $V- OvflChk       $Z- ZeroVars
  28. *)
  29.  
  30. IMPORT Exec, SYS := SYSTEM;
  31.  
  32.  
  33. (*
  34. **      $VER: translator.h 36.1 (13.12.90)
  35. **
  36. **      Useful definitions for translator.library
  37. *)
  38.  
  39. CONST
  40.  
  41. (*      Translator error return codes   *)
  42.  
  43.   notUsed * =    -1;      (* This is an oft used system rc        *)
  44.   noMem *   =    -2;      (* Can't allocate memory                *)
  45.   makeBad * =    -4;      (* Error in MakeLibrary call            *)
  46.  
  47.  
  48. (*-- Library Base variable --------------------------------------------*)
  49.  
  50. TYPE
  51.  
  52.   TranslatorBasePtr = CPOINTER TO TranslatorBase;
  53.   TranslatorBase = RECORD (Exec.Library) END;
  54.  
  55. CONST
  56.  
  57.   name * = "translator.library";
  58.  
  59. VAR
  60.  
  61.   base* : TranslatorBasePtr;
  62.  
  63.  
  64. (*-- Library Functions ------------------------------------------------*)
  65.  
  66. (*
  67. **      $VER: translator_protos.h 36.1 (7.11.90)
  68. *)
  69.  
  70.  
  71. LIBCALL (base : TranslatorBasePtr) Translate *
  72.   ( inputString      [8] : ARRAY OF CHAR;
  73.     inputLength      [0] : LONGINT;
  74.     VAR outputBuffer [9] : ARRAY OF CHAR;
  75.     bufferSize       [1] : LONGINT )
  76.   : LONGINT;
  77.   -30;
  78.  
  79.  
  80. (*-- Library Base variable --------------------------------------------*)
  81. (* $L- Address globals through A4 *)
  82.  
  83.  
  84. (*-----------------------------------*)
  85. PROCEDURE* CloseLib ();
  86.  
  87. BEGIN (* CloseLib *)
  88.   IF base # NIL THEN Exec.base.CloseLibrary (base) END;
  89. END CloseLib;
  90.  
  91. (*-----------------------------------*)
  92. PROCEDURE OpenLib * (mustOpen : BOOLEAN);
  93.  
  94. BEGIN (* OpenLib *)
  95.   IF base = NIL THEN
  96.     base :=
  97.       SYS.VAL
  98.         ( TranslatorBasePtr,
  99.           Exec.base.OpenLibrary (name, Exec.libraryMinimum) );
  100.     IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
  101.     ELSIF mustOpen THEN HALT (100)
  102.     END;
  103.   END;
  104. END OpenLib;
  105.  
  106.  
  107. BEGIN
  108.   base := NIL
  109. END Translator.
  110.